Skip to content

CS106B: Programming Abstractions

Course Overview

University: Stanford
Instructor: Chris Gregg
Status: Not Started
Progress: 0/28 lectures

Learn C++ and master essential data structures and algorithms. This is where programming becomes powerful.

Resources

📺 Stanford CS106B Playlist
🌐 Course Website
📚 Course Materials

Key Topics

  • C++ fundamentals and syntax
  • Pointers and memory management
  • Recursion
  • Data structures:
    • Vectors and arrays
    • Linked lists
    • Stacks and queues
    • Trees and graphs
  • Sorting and searching algorithms
  • Algorithm efficiency and Big O notation
  • Debugging and profiling

Why This Matters

CS106B teaches you to think about data and abstraction. You'll learn:

  • Data structures: How to organize data for efficient access
  • Algorithms: Classic approaches to solving problems
  • Efficiency: How to write fast, scalable code
  • C++: A powerful systems programming language

Learning Goals

By the end of this course, you should be able to:

  • Write efficient C++ programs
  • Choose appropriate data structures for different problems
  • Implement classic data structures from scratch
  • Analyze algorithm complexity
  • Debug complex programs
  • Understand memory management and pointers

Study Plan

Estimated Time: 6-8 hours/week for 10-12 weeks

  • Lectures: ~3 hours/week
  • Assignments: ~3-5 hours/week
  • Reading: ~1 hour/week

Daily Notes

Week 1: C++ Basics

  • [ ] Lecture 1: Welcome
  • [ ] Lecture 2: C++ Basics
  • [ ] Assignment 1: Starter Code

Week 2: Vectors & Functions

  • [ ] Lecture 3: Vectors
  • [ ] Lecture 4: Functions
  • [ ] Assignment 2

Assignments


Key Data Structures


Key Takeaways


[← Back to Winter Quarter](Online Studying/CS - Stanford, MIT, Berkley/Year 1/Winter Quarter/index.md) | Next Course: Calculus 2 →